package com.service.impl;

import com.entity.Product;
import com.entity.ProductEs;
import com.service.ProductEsService;
import com.service.ProductMqService;
import config.MqConfig;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@RabbitListener(queues = MqConfig.ES_MQ_DEMO)
public class ProductMqServiceImpl implements ProductMqService {
    @Autowired
    private ProductEsService productEsService;

    @RabbitHandler()
    @Override
    public void fetchMqProduct(Product product) {
        System.out.println("consume:--" +product);
        ProductEs productEs = cleanData(product);
        productEsService.insertDoc(productEs);
    }

    /**
     * 清理数据：消息队列中的数据不一定都是需要放到es中的数据
     * 这里简单模仿清理数据：把价格没有放到es中（注意：是模仿，价格这种数据是可以放到es中的）
     * @param product
     * @return
     */
    private ProductEs cleanData(Product product) {
        ProductEs productEs = new ProductEs();
        productEs.setId(product.getId());
        productEs.setName(product.getName());
        productEs.setProductDesc(product.getProductDesc());
        return productEs;
    }
}
